template <typename T>
BinNodePosi(T) BST<T>::insert(const T &e) {
	BinNodePosi(T) &x = this->search(e);
	if(x) return x;

	/* x is _hot->lc or _hot->rc now for x is a reference!  */
	x = new BinNode<T>(e, _hot);
	this->_size++;
	this->updateHeightAbove(x);

	/* When returned, x always satisfies x->data == e.  */
	return x;
}